package cn.sanshuilin.kst.system.provider.bean;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author greenlee
 * @version v1.0
 * @create 创建时间: 2017-12-27 20:09
 * Copyright 2017  by 三水林科技有限公司
 **/
@Entity
@Table(name = "member")
public class Member implements Serializable {
    private String id;
    private String password;
    private String username;
    private Integer statusId;
    private Date registDate;
    private Date lastLoginDate;
    private String clientIp;
    private Integer groupId;
    private String tel;
    private String email;
    private String mobile;
    private String name;
    private String address;
    private String description;
    private String imageId;
    private Integer isRecommendId;
    private String airPort;
    private String artists;
    private String spaceId;
    private String recommendProductId;
    private Integer attentionCount;
    private Integer fanCount;
    private Integer shareCount;
    private Integer informationCount;
    private Integer attitudeCount;
    private Integer commentCount;
    private String company;
    private Integer typeId;
    private String openTime;
    private String platform;
//扩展的
    private String imageUrl;
    private Integer count;
    private String 	recommendProductName;
    private String recommendProductImgUrl;
    private boolean isAttention;
    private boolean isInvite;
    private String typeName;
    private Integer receiveMaxOrdenNumber;
    private String groupName;
    private String statusName;
    private String isRecommendName;
    private Integer isAttentioned;
    //private String attentionCount;
    private String parentMemberID;
    private String parentMemberName;
    private String spaceName;
    private List<Member> spaceArtists;
    private String token;

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    //扩展 end
    @Transient
    public String getImageUrl() {
        return imageUrl;
    }
    @Transient
    public Integer getCount() {
        return count;
    }
    @Transient
    public String getRecommendProductName() {
        return recommendProductName;
    }
    @Transient
    public String getRecommendProductImgUrl() {
        return recommendProductImgUrl;
    }
    @Transient
    public boolean isAttention() {
        return isAttention;
    }
    @Transient
    public boolean isInvite() {
        return isInvite;
    }
    @Transient
    public String getTypeName() {
        return typeName;
    }
    @Transient
    public Integer getReceiveMaxOrdenNumber() {
        return receiveMaxOrdenNumber;
    }
    @Transient
    public String getGroupName() {
        return groupName;
    }
    @Transient
    public String getStatusName() {
        return statusName;
    }
    @Transient
    public String getIsRecommendName() {
        return isRecommendName;
    }
    @Transient
    public Integer getIsAttentioned() {
        return isAttentioned;
    }
    @Transient
    public String getParentMemberID() {
        return parentMemberID;
    }
    @Transient
    public String getParentMemberName() {
        return parentMemberName;
    }
    @Transient
    public String getSpaceName() {
        return spaceName;
    }
    @Transient
    public List<Member> getSpaceArtists() {
        return spaceArtists;
    }

    //get

    public void setImageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
    }

    public void setCount(Integer count) {
        this.count = count;
    }

    public void setRecommendProductName(String recommendProductName) {
        this.recommendProductName = recommendProductName;
    }

    public void setRecommendProductImgUrl(String recommendProductImgUrl) {
        this.recommendProductImgUrl = recommendProductImgUrl;
    }

    public void setAttention(boolean attention) {
        isAttention = attention;
    }

    public void setInvite(boolean invite) {
        isInvite = invite;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public void setReceiveMaxOrdenNumber(Integer receiveMaxOrdenNumber) {
        this.receiveMaxOrdenNumber = receiveMaxOrdenNumber;
    }

    public void setGroupName(String groupName) {
        this.groupName = groupName;
    }

    public void setStatusName(String statusName) {
        this.statusName = statusName;
    }

    public void setIsRecommendName(String isRecommendName) {
        this.isRecommendName = isRecommendName;
    }

    public void setIsAttentioned(Integer isAttentioned) {
        this.isAttentioned = isAttentioned;
    }

    public void setParentMemberID(String parentMemberID) {
        this.parentMemberID = parentMemberID;
    }

    public void setParentMemberName(String parentMemberName) {
        this.parentMemberName = parentMemberName;
    }

    public void setSpaceName(String spaceName) {
        this.spaceName = spaceName;
    }

    public void setSpaceArtists(List<Member> spaceArtists) {
        this.spaceArtists = spaceArtists;
    }

    //
    @Id
    @Column(name = "ID", nullable = false, length = 255)
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @Basic
    @Column(name = "Password", nullable = true, length = 255)
    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Basic
    @Column(name = "Username", nullable = true, length = 255)
    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    @Basic
    @Column(name = "StatusID", nullable = true)
    public Integer getStatusId() {
        return statusId;
    }

    public void setStatusId(Integer statusId) {
        this.statusId = statusId;
    }

    @Basic
    @Column(name = "RegistDate", nullable = true)
    public Date getRegistDate() {
        return registDate;
    }

    public void setRegistDate(Date registDate) {
        this.registDate = registDate;
    }

    @Basic
    @Column(name = "LastLoginDate", nullable = true)
    public Date getLastLoginDate() {
        return lastLoginDate;
    }

    public void setLastLoginDate(Date lastLoginDate) {
        this.lastLoginDate = lastLoginDate;
    }

    @Basic
    @Column(name = "ClientIP", nullable = true, length = 255)
    public String getClientIp() {
        return clientIp;
    }

    public void setClientIp(String clientIp) {
        this.clientIp = clientIp;
    }

    @Basic
    @Column(name = "GroupID", nullable = true)
    public Integer getGroupId() {
        return groupId;
    }

    public void setGroupId(Integer groupId) {
        this.groupId = groupId;
    }

    @Basic
    @Column(name = "Tel", nullable = true, length = 255)
    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    @Basic
    @Column(name = "Email", nullable = true, length = 255)
    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Basic
    @Column(name = "Mobile", nullable = true, length = 255)
    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    @Basic
    @Column(name = "Name", nullable = true, length = 255)
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Basic
    @Column(name = "Address", nullable = true, length = 255)
    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Basic
    @Column(name = "Description", nullable = true, length = 255)
    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    @Basic
    @Column(name = "ImageID", nullable = true, length = 255)
    public String getImageId() {
        return imageId;
    }

    public void setImageId(String imageId) {
        this.imageId = imageId;
    }

    @Basic
    @Column(name = "IsRecommendID", nullable = true)
    public Integer getIsRecommendId() {
        return isRecommendId;
    }

    public void setIsRecommendId(Integer isRecommendId) {
        this.isRecommendId = isRecommendId;
    }

    @Basic
    @Column(name = "AirPort", nullable = true, length = 255)
    public String getAirPort() {
        return airPort;
    }

    public void setAirPort(String airPort) {
        this.airPort = airPort;
    }

    @Basic
    @Column(name = "Artists", nullable = true, length = 255)
    public String getArtists() {
        return artists;
    }

    public void setArtists(String artists) {
        this.artists = artists;
    }

    @Basic
    @Column(name = "SpaceID", nullable = true, length = 255)
    public String getSpaceId() {
        return spaceId;
    }

    public void setSpaceId(String spaceId) {
        this.spaceId = spaceId;
    }

    @Basic
    @Column(name = "RecommendProductID", nullable = true, length = 255)
    public String getRecommendProductId() {
        return recommendProductId;
    }

    public void setRecommendProductId(String recommendProductId) {
        this.recommendProductId = recommendProductId;
    }

    @Basic
    @Column(name = "AttentionCount", nullable = true)
    public Integer getAttentionCount() {
        return attentionCount;
    }

    public void setAttentionCount(Integer attentionCount) {
        this.attentionCount = attentionCount;
    }

    @Basic
    @Column(name = "FanCount", nullable = true)
    public Integer getFanCount() {
        return fanCount;
    }

    public void setFanCount(Integer fanCount) {
        this.fanCount = fanCount;
    }

    @Basic
    @Column(name = "ShareCount", nullable = true)
    public Integer getShareCount() {
        return shareCount;
    }

    public void setShareCount(Integer shareCount) {
        this.shareCount = shareCount;
    }

    @Basic
    @Column(name = "InformationCount", nullable = true)
    public Integer getInformationCount() {
        return informationCount;
    }

    public void setInformationCount(Integer informationCount) {
        this.informationCount = informationCount;
    }

    @Basic
    @Column(name = "AttitudeCount", nullable = true)
    public Integer getAttitudeCount() {
        return attitudeCount;
    }

    public void setAttitudeCount(Integer attitudeCount) {
        this.attitudeCount = attitudeCount;
    }

    @Basic
    @Column(name = "CommentCount", nullable = true)
    public Integer getCommentCount() {
        return commentCount;
    }

    public void setCommentCount(Integer commentCount) {
        this.commentCount = commentCount;
    }

    @Basic
    @Column(name = "Company", nullable = true, length = 255)
    public String getCompany() {
        return company;
    }

    public void setCompany(String company) {
        this.company = company;
    }

    @Basic
    @Column(name = "TypeID", nullable = true)
    public Integer getTypeId() {
        return typeId;
    }

    public void setTypeId(Integer typeId) {
        this.typeId = typeId;
    }

    @Basic
    @Column(name = "OpenTime", nullable = true, length = 255)
    public String getOpenTime() {
        return openTime;
    }

    public void setOpenTime(String openTime) {
        this.openTime = openTime;
    }
    @Basic
    @Column(name = "PLATFORM")
    public String getPlatform() {
        return platform;
    }

    public void setPlatform(String platform) {
        this.platform = platform;
    }
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Member that = (Member) o;

        if (id != null ? !id.equals(that.id) : that.id != null) return false;
        if (password != null ? !password.equals(that.password) : that.password != null) return false;
        if (username != null ? !username.equals(that.username) : that.username != null) return false;
        if (statusId != null ? !statusId.equals(that.statusId) : that.statusId != null) return false;
        if (registDate != null ? !registDate.equals(that.registDate) : that.registDate != null) return false;
        if (lastLoginDate != null ? !lastLoginDate.equals(that.lastLoginDate) : that.lastLoginDate != null)
            return false;
        if (clientIp != null ? !clientIp.equals(that.clientIp) : that.clientIp != null) return false;
        if (groupId != null ? !groupId.equals(that.groupId) : that.groupId != null) return false;
        if (tel != null ? !tel.equals(that.tel) : that.tel != null) return false;
        if (email != null ? !email.equals(that.email) : that.email != null) return false;
        if (mobile != null ? !mobile.equals(that.mobile) : that.mobile != null) return false;
        if (name != null ? !name.equals(that.name) : that.name != null) return false;
        if (address != null ? !address.equals(that.address) : that.address != null) return false;
        if (description != null ? !description.equals(that.description) : that.description != null) return false;
        if (imageId != null ? !imageId.equals(that.imageId) : that.imageId != null) return false;
        if (isRecommendId != null ? !isRecommendId.equals(that.isRecommendId) : that.isRecommendId != null)
            return false;
        if (airPort != null ? !airPort.equals(that.airPort) : that.airPort != null) return false;
        if (artists != null ? !artists.equals(that.artists) : that.artists != null) return false;
        if (spaceId != null ? !spaceId.equals(that.spaceId) : that.spaceId != null) return false;
        if (recommendProductId != null ? !recommendProductId.equals(that.recommendProductId) : that.recommendProductId != null)
            return false;
        if (attentionCount != null ? !attentionCount.equals(that.attentionCount) : that.attentionCount != null)
            return false;
        if (fanCount != null ? !fanCount.equals(that.fanCount) : that.fanCount != null) return false;
        if (shareCount != null ? !shareCount.equals(that.shareCount) : that.shareCount != null) return false;
        if (informationCount != null ? !informationCount.equals(that.informationCount) : that.informationCount != null)
            return false;
        if (attitudeCount != null ? !attitudeCount.equals(that.attitudeCount) : that.attitudeCount != null)
            return false;
        if (commentCount != null ? !commentCount.equals(that.commentCount) : that.commentCount != null) return false;
        if (company != null ? !company.equals(that.company) : that.company != null) return false;
        if (typeId != null ? !typeId.equals(that.typeId) : that.typeId != null) return false;
        if (openTime != null ? !openTime.equals(that.openTime) : that.openTime != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = id != null ? id.hashCode() : 0;
        result = 31 * result + (password != null ? password.hashCode() : 0);
        result = 31 * result + (username != null ? username.hashCode() : 0);
        result = 31 * result + (statusId != null ? statusId.hashCode() : 0);
        result = 31 * result + (registDate != null ? registDate.hashCode() : 0);
        result = 31 * result + (lastLoginDate != null ? lastLoginDate.hashCode() : 0);
        result = 31 * result + (clientIp != null ? clientIp.hashCode() : 0);
        result = 31 * result + (groupId != null ? groupId.hashCode() : 0);
        result = 31 * result + (tel != null ? tel.hashCode() : 0);
        result = 31 * result + (email != null ? email.hashCode() : 0);
        result = 31 * result + (mobile != null ? mobile.hashCode() : 0);
        result = 31 * result + (name != null ? name.hashCode() : 0);
        result = 31 * result + (address != null ? address.hashCode() : 0);
        result = 31 * result + (description != null ? description.hashCode() : 0);
        result = 31 * result + (imageId != null ? imageId.hashCode() : 0);
        result = 31 * result + (isRecommendId != null ? isRecommendId.hashCode() : 0);
        result = 31 * result + (airPort != null ? airPort.hashCode() : 0);
        result = 31 * result + (artists != null ? artists.hashCode() : 0);
        result = 31 * result + (spaceId != null ? spaceId.hashCode() : 0);
        result = 31 * result + (recommendProductId != null ? recommendProductId.hashCode() : 0);
        result = 31 * result + (attentionCount != null ? attentionCount.hashCode() : 0);
        result = 31 * result + (fanCount != null ? fanCount.hashCode() : 0);
        result = 31 * result + (shareCount != null ? shareCount.hashCode() : 0);
        result = 31 * result + (informationCount != null ? informationCount.hashCode() : 0);
        result = 31 * result + (attitudeCount != null ? attitudeCount.hashCode() : 0);
        result = 31 * result + (commentCount != null ? commentCount.hashCode() : 0);
        result = 31 * result + (company != null ? company.hashCode() : 0);
        result = 31 * result + (typeId != null ? typeId.hashCode() : 0);
        result = 31 * result + (openTime != null ? openTime.hashCode() : 0);
        return result;
    }
}
